[package]
name = "{{{packageName}}}"
version = {{#packageVersion}}"{{{packageVersion}}}"{{/packageVersion}}{{^packageVersion}}"{{{appVersion}}}"{{/packageVersion}}{{! Fill in with packageVersion if defined, which can be passed via a command line argument, Else use appVersion from the Open API spec, which defaults to 1.0.0 if not present.}}
authors = [{{#infoEmail}}"{{{infoEmail}}}"{{/infoEmail}}]
{{#appDescription}}
description = "{{{appDescription}}}"
{{/appDescription}}
license = "Unlicense"

[features]
default = ["client", "server"]
client = [{{#usesUrlEncodedForm}}"serde_urlencoded", {{/usesUrlEncodedForm}}"serde_ignored", "hyper", "hyper-tls", "native-tls", "openssl", "tokio-core", "url"]
server = ["serde_ignored", "hyper", "hyper-tls", "native-tls", "openssl", "tokio-core", "tokio-proto", "tokio-tls", "regex", "percent-encoding", "url"]
conversion = ["frunk", "frunk_derives", "frunk_core", "frunk-enum-core", "frunk-enum-derive"]

[dependencies]
# Common
chrono = { version = "0.4", features = ["serde"] }
futures = "0.1"
swagger = "2.2"
lazy_static = "1.4"
log = "0.3.0"
mime = "0.2.6"
multipart = "0.13.3"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"

# Crates included if required by the API definition
{{#apiUsesUuid}}
uuid = {version = "0.5", features = ["serde", "v4"]}
{{/apiUsesUuid}}
{{#usesXml}}
# TODO: this should be updated to point at the official crate once
# https://github.com/RReverser/serde-xml-rs/pull/45 is accepted upstream
serde-xml-rs = {git = "git://github.com/Metaswitch/serde-xml-rs.git" , branch = "master"}
{{/usesXml}}

# Common between server and client features
hyper = {version = "0.11", optional = true}
hyper-tls = {version = "0.1.2", optional = true}
native-tls = {version = "0.1.4", optional = true}
openssl = {version = "0.9.14", optional = true}
serde_ignored = {version = "0.0.4", optional = true}
tokio-core = {version = "0.1.6", optional = true}
url = {version = "1.5", optional = true}

# Client-specific
{{#usesUrlEncodedForm}}serde_urlencoded = {version = "0.5.1", optional = true}{{/usesUrlEncodedForm}}

# Server-specific
percent-encoding = {version = "1.0.0", optional = true}
regex = {version = "0.2", optional = true}
tokio-proto = {version = "0.1.1", optional = true}
tokio-tls = {version = "0.1.3", optional = true, features = ["tokio-proto"]}

# Other optional crates
frunk = { version = "0.3.0", optional = true }
frunk_derives = { version = "0.3.0", optional = true }
frunk_core = { version = "0.3.0", optional = true }
frunk-enum-derive = { version = "0.2.0", optional = true }
frunk-enum-core = { version = "0.2.0", optional = true }

[dev-dependencies]
clap = "2.25"
error-chain = "0.12"
{{^apiUsesUuid}}
uuid = {version = "0.5", features = ["serde", "v4"]}
{{/apiUsesUuid}}

[[example]]
name = "client"
required-features = ["client"]

[[example]]
name = "server"
required-features = ["server"]
